Traditionally, in a computer file system, a file is the basic unit of data storage. Typically, a file in a file system has the following characteristics. It is a single sequence of bytes. It has a finite length and is stored typically in a non-volatile storage medium. It is created in a directory and has a name that it can be referred to by in file operations, possibly in combination with its path. Additionally, a file system may associate other information with a file, such as permission bits or other file attributes; timestamps for file creation, last revision, and last access etc. Specific applications can also store domain-specific properties in the byte stream of the file. For example, files that are used by a word processing application and hence considered as ‘documents’ may store properties like the Title and Author of the document. These properties are stored within the byte stream of the file in a format that is specific to the application creating the file. The properties are not structured as objects, nor do they have standardized names. The byte streams are unstructured values.
Additionally, conventional computer file systems have provided limited file organization techniques available to users. For example, existing applications have largely adopted a tree structure folder format for organizing and displaying various types of files. Though some relationships between folders, subfolders, and files can be viewed, such relationships are limited in scope and are primarily dependent upon explicit user input. For example, files can be related according to their common folder or subfolder as denoted by the user.